package alejandro.celulares

object Localidad{
  def precioLargaDistancia(s: Localidad, t: Localidad): Double = (s,t) match {
    case (Quilmes(), Berazategui()) => 1.0
    case (Berazategui(), Quilmes()) => 1.0
    case (Bernal(), Quilmes()) => 0.75
    case (Quilmes(), Bernal()) => 0.75
    case (_, _) => 1.5
   }
  
}

abstract class Localidad {
   def descripcion: String     
   def precioHasta(t: Localidad):Double = Localidad.precioLargaDistancia(this, t)
}

case class Quilmes()		extends Localidad{
  def descripcion() = "Quilmes, Buenos Aires, Argentina"  
}

case class Berazategui()	extends Localidad{
  def descripcion() = "Berazategui, Buenos Aires, Argentina"  
}

case class Bernal()			extends Localidad{
  def descripcion() = "Bernal, Buenos Aires, Argentina"  
}

case class Varela()			extends Localidad{
  def descripcion() = "Varela, Buenos Aires, Argentina"  
}

case class Lanus()			extends Localidad{
  def descripcion() = "Lanus, Buenos Aires, Argentina"  
}

case class Ezpeleta()		extends Localidad{
  def descripcion() = "Ezpeleta, Buenos Aires, Argentina"  
}

case class La_plata()		extends Localidad{
  def descripcion() = "La plata, Buenos Aires, Argentina"  
}

case class Wilde()			extends Localidad{
  def descripcion() = "Wilde, Buenos Aires, Argentina"  
}

